Перейти к основному содержимому

5.09. Важные классы и интерфейсы Kotlin

Разработчику Архитектору

Важные классы и интерфейсы Kotlin

Класс, интерфейсОписание
AnyАналог Object из Java. Все классы наследуются от Any.
UnitАналог void, используется как возвращаемый тип функций.
NothingТип, который не имеет значений, используется для функций, которые никогда не возвращаются.
List<T>,Set<T>,Map<K,V>Неизменяемые коллекции.
MutableList<T>,MutableSet<T>,MutableMap<K,V>Изменяемые коллекции.
Pair<A,B>,Triple<A,B,C>Кортежи для хранения пар/троек значений.
FunctionNФункциональные типы (например, (Int, String) -> Boolean).
CoroutineScope,launch,asyncДля работы с корутинами.
suspendМодификатор для асинхронных функций.
sealed classОграниченная иерархия классов, полезна в when.
data classАвтоматически генерирует equals, hashCode, toString и copy.
inline classОбертка вокруг одного значения, чтобы не создавать оверхеда.
companion objectСтатические методы внутри класса.
Примеры часто встречающихся задач
1. Null Safety

val nullableValue: String? = null
val length = nullableValue?.length ?: 0


2. Data Class

data class User(val id: Int, val name: String)


3. Корутины

import kotlinx.coroutines.*

fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}


4. Расширение классов

fun String.isLong(): Boolean = this.length > 10



5. HTTP-запрос через Ktor

import io.ktor.client.*
import io.ktor.client.features.json.*
import io.ktor.client.request.*

suspend fun fetchUser(): String {
val client = HttpClient {
install(JsonFeature) {
serializer = KotlinxSerializer()
}
}
return client.get("https://api.example.com/user/1")
}


В отличие от Java, Jetbrains создатели Kotlin, поэтому IntelliJ IDEA – официальная IDE для разработки на Kotlin. Она предоставляет подсветку синтаксиса, умные автодополнения, интеграцию с Gradle/Maven, поддержку Android, JS, Native и Multiplatform.